// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef CONTENT_BROWSER_GPU_SHADER_CACHE_FACTORY_H_
#define CONTENT_BROWSER_GPU_SHADER_CACHE_FACTORY_H_

#include "content/common/content_export.h"
#include "gpu/ipc/host/shader_disk_cache.h"

namespace content {

// Initializes the ShaderCacheFactory singleton instance. The singleton
// instance is created and used in the thread associated with |task_runner|.
// |cache_task_runner| is associated with the thread responsible for managing
// the disk cache.
CONTENT_EXPORT void InitShaderCacheFactorySingleton(
    scoped_refptr<base::SingleThreadTaskRunner> task_runner,
    scoped_refptr<base::SingleThreadTaskRunner> cache_task_runner);

// Returns an instance previously created by InitShaderCacheFactorySingleton().
// This can return nullptr if an instance has not yet been created.
CONTENT_EXPORT gpu::ShaderCacheFactory* GetShaderCacheFactorySingleton();

} // namespace content

#endif // CONTENT_BROWSER_GPU_SHADER_CACHE_FACTORY_H_
